package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * JDK1.5之后，java推出了一个新特性:增强型for循环
 * 也称为新循环
 * 它的出现为了使用相同的语法遍历集合或数组
 * 语法:
 * for(元素类型 e : 集合或数组){
 *     ...
 * }
 */
public class NewForDemo {
    public static void main(String[] args) {
        String[] array = {"one", "two", "three","four","five"};
        for(int i=0;i<array.length;i++){
            String e = array[i];
            System.out.println(e);
        }
        /*
            新循环语法是编译器认可，而非虚拟机。
            编译器在编译代码时会将新循环遍历数组改为普通的for循环
         */
        for(String e : array){
            System.out.println(e);
        }

        Collection<String> c = new ArrayList<>();
        c.add("一");
        c.add("#");
        c.add("二");
        c.add("三");
        c.add("四");
        c.add("五");
        Iterator<String> it = c.iterator();
        while(it.hasNext()){
            String e = it.next();
            System.out.println(e);
        }
        /*
            新循环遍历集合会被改回成迭代器遍历
            注意：不要在遍历的过程中通过集合的方法增删元素
         */
        for(String e : c){
            System.out.println(e);
        }

    }
}
